package domain

import (
	"apitestAfterGo/dto"
	"time"
)

type System struct {
	Id         int       `json:"id"`
	Leader     string    `json:"leader"`
	SystemName string    `json:"system_name"`
	SystemType string    `json:"system_type"`
	CreateBy   string    `json:"create_by"`
	CreateTime time.Time `json:"create_time"`
	UpdateBy   string    `json:"update_by"`
	UpdateTime time.Time `json:"update_time"`
	IsDelete   int       `json:"is_delete" gm:"logic"`
}

type SystemMapper struct {
	SelectSystemsByUserId func(dto dto.SystemByPageInputDto) ([]System, error)
	GetAllSystemCount     func(dto dto.SystemByPageInputDto) (int, error)
	GetSystemsByPage      func(dto dto.SystemByPageInputDto) ([]System, error)
	DeleteTemplate        func(id int) (int64, error) `args:"id"`
	AddSystem             func(dto dto.SystemInputDto) (int64, error)
	ModifySystemById      func(dto dto.SystemInputDto) (int64, error)
	GetUsersBySystemId    func(id int) ([]User, error)            `args:"id"`
	SelectTemplate        func(id int) (System, error)            `args:"id"`
	AddUsersBySystemId    func(id int, userId int) (int64, error) `args:"id,userId"`
	DeleteUsersById       func(id int) (int64, error)             `args:"id"`
}
